//package com.ldfile.server.utils;
//
//import org.bytedeco.javacpp.opencv_core;
//import org.bytedeco.javacv.FFmpegFrameGrabber;
//import org.bytedeco.javacv.Frame;
//import org.bytedeco.javacv.Java2DFrameConverter;
//import org.bytedeco.javacv.OpenCVFrameConverter;
//
//import java.awt.image.BufferedImage;
//import java.io.File;
//import java.io.IOException;
//
//import javax.imageio.ImageIO;
//
//
//
//
//public class VideoFrameKit {
//
//    /**
//     * 获取指定视频的帧并保存为图片至指定目录
//     * @param videofile  源视频文件路径
//     * framefile  截取帧的图片存放路径
//     * @throws Exception
//     * @throws IOException
//     * @return
//     */
//    public static Frame fetchFrame(String videofile)
//            throws Exception, IOException {
////        videofile="https://anxzfile.ynyplt.com/file-server/0baedbbf-ca1f-4d96-8943-64b3f520bfea.mp4";
//        FFmpegFrameGrabber ff = new FFmpegFrameGrabber(videofile);
//        ff.start();
//        String rotate =ff.getVideoMetadata("rotate");//视频的旋转角度
//        int lenght = ff.getLengthInFrames();
//        int i = 0;
//        Frame f = null;
//        while (i < lenght) {
//            // 过滤前5帧，避免出现全黑的图片，依自己情况而定
//            f = ff.grabImage(); //应该使用grabImage而不是grabFrame，这样可以避免mov格式的视频截图失败
//            if ((i > 5) && (f.image != null)) {
//                break;
//            }
//            opencv_core.IplImage src = null;
//            if(null !=rotate &&rotate.length() > 1) {
//                OpenCVFrameConverter.ToIplImage converter =new OpenCVFrameConverter.ToIplImage();
//                src =converter.convert(f);
//                f =converter.convert(rotate(src, Integer.valueOf(rotate)));
//            }
////            doExecuteFrame(f, framefile);
//            i++;
//        }
//        return f;
//
//    }
//
//
//    public static opencv_core.IplImage rotate(opencv_core.IplImage src, int angle) {
//        opencv_core.IplImage img = opencv_core.IplImage.create(src.height(),src.width(),src.depth(),src.nChannels());
//        opencv_core.cvTranspose(src,img);
//        opencv_core.cvFlip(img,img,angle);
//        return img;
//    }
//
//
//    public static void doExecuteFrame(Frame f,String targetFileName) {
//        if (null ==f ||null ==f.image) {
//            return;
//        }
//        Java2DFrameConverter converter =new Java2DFrameConverter();
//        BufferedImage bi =converter.getBufferedImage(f);
//        File output =new File(targetFileName);
//        try {
//            ImageIO.write(bi,"jpeg",output);
//        }catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//
//}
